/* 
 * Rule.java
 * 
 * Data de criação: 03/03/2010
 * 
 * O2SOLUTIONS - SOLUÇÕES EM TECNOLOGIA DA INFORMAÇÃO. 
 *
 */
package br.com.o2solutions.core.service.rule;

import br.com.o2solutions.core.exception.BusinessException;

/**
 * Interface que aplica a Regra negocial relacionada a uma entidade de Dominio.
 * 
 * @author osvaldeir
 * @since 03/03/2010
 * 
 */
public interface Rule<T> {

	/**
	 * Verifica se a regra negocial nao foi quebrada em um determinado processo.
	 * 
	 * @param entity
	 *            Entidade a ser verificada quanto a regra negocial
	 * @throws BusinessException
	 *             Caso a regra negocial a ser verificada seja quebrada.
	 */
	public void check(T entity) throws BusinessException;
}
